#ifndef PIECE_H
#define PIECE_H

/** \class Piece
*	\brief A Piece class
*	\details Class that defines a board game piece
*/
class Piece
{
    public:
        /** \brief Piece Constructor
        *
        * Constructs a board game Piece. Default Piece has player as -1 and type as '.'
        * @param[in] player The owner of the Piece.
        * @param[in] type The type of the Piece. Also used when outputting the Piece.
        */
        Piece(int player = -1, char type = '.');

        ~Piece();

        /** \brief Get Type
        *
        * Gets the type of the Piece.
        * \returns Returns the type as a char.
        */
		char getType();

		/** \brief Set Type
        *
        * Sets the type of the Piece.
        * @param[in] type The type of the Piece.
        */
		void setType(char type);

		/** \brief Get Player
        *
        * Gets the owner of the Piece.
        * \returns The owner of the Piece as an integer.
        */
		int getPlayer();

		/** \brief Set Player
        *
        * Sets the owner of the Piece.
        * @param[in] player The owner of the Piece.
        */
		void setPlayer(int player);
    protected:
    private:
        int m_player;
		char m_type;
};

#endif // PIECE_H
